package bookManager;


import com.sun.org.apache.bcel.internal.generic.LSTORE;

import javax.xml.transform.Result;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;

/**
 * 新增不实现（没有注册）
 * 删除不实现（没有注销）
 * 修改不实现（没有改密码）
 * 查找要实现！ 进行登录
 * 登录操作，根据用户名来查找密码！=>查找用户的详细信息
 */


public class UserDao {
    //根据用户名
    public User findUserByName (String name) {
        Connection connection=null;
        ResultSet resultSet=null;
        PreparedStatement statement=null;

        try {
            //1、建立连接
            connection=DBUtil.getConnection();
            //2、构造sql
            String sql = "select * from user where name = ?";
            statement = connection.prepareStatement(sql);
            statement.setString(1, name);
            // 3. 执行 SQL
            resultSet = statement.executeQuery();

            //由于sql中的user表name是unique约束，唯一不重复，要么是1，要么是0；
            while(resultSet.next()) {
                //1条记录
                //但是IsAdmin和NormalUser是单独的一个类,不能是阶new User
                boolean isAdmin=(resultSet.getInt("isAdmin")==1);
                User user=null;
                if(isAdmin) {
                    user=new Admin();

                } else {
                    user=new NormalUser();
                }
                user.setUserId(resultSet.getInt("userId"));
                user.setName(resultSet.getString("name"));
                user.setPassword(resultSet.getString("password"));
                //构造好user之后，直接return就行；
                return user;
            }
            //0条记录，就是没查到
            return null;
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            DBUtil.close(resultSet,connection,statement);
        }
        //执行过程中遇到异常，直接返回null；
        return null;

    }

    //用过main这个方法，验证代码是否正确
    public static void main(String[] args) {

        UserDao userDao=new UserDao();
        User user=userDao.findUserByName("admin");
        System.out.println(user);

        //6、还书
        /*BookDao bookDao=new BookDao();
        boolean ret=bookDao.returnBook(4);
        System.out.println(ret);*/

        //5、借书
        /*boolean ret=bookDao.BorrowBook(4);
        System.out.println(ret);*/

        //4、验证删除
        /*boolean ret=bookDao.delete(3);
        System.out.println(ret);*/


        //3、验证按名字查找
        /*List<Book> books=bookDao.findBooksByName("红楼梦");
        System.out.println(books);*/


        //2、验证查找图书
        /*BookDao bookDao=new BookDao();
        List<Book> books=bookDao.findBooks();
        System.out.println(books);*/


        /*1、验证插入新增图书
        BookDao bookDao=new BookDao();
        Book book=new Book();
        book.setName("红楼梦");
        book.setAuthor("曹雪芹");
        book.setType("古典小说");
        book.setPrice(10000);
        bookDao.add(book);*/



    }
}
